package ecnu.ecgbackend.service;

import com.baomidou.mybatisplus.extension.service.IService;
import ecnu.ecgbackend.entity.Developer;
import ecnu.ecgbackend.entity.Doctor;
import ecnu.ecgbackend.entity.Patient;
import ecnu.ecgbackend.entity.User;
import ecnu.ecgbackend.utils.Result;
import ecnu.ecgbackend.vo.DoctorVo;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.List;
import java.util.Map;

public interface DiagnosisUserService extends IService<User> {
    User findUserByUserName(String userName);
    Result editPatientInfo(User user, Patient patient);
    Result editDoctorInfo(User user, Doctor doctor);
    Result editDeveloperInfo(User user, Developer developer);
    Result editAminInfo(User user);
    Result editPhone(String phone,String code);
    Object getUserInfo();
    boolean editDoctorCertify(MultipartFile multipartFile) throws IOException;
    Integer getIntegral();
    Object getUserInfoByIdAndRole(int id,String role);
    Map<String,Object> pageUserList(String category,String username,int pageNum,int pageSize);
    boolean editDoctorCertifiedTrue(int id);
    boolean editDoctorCertifiedFalse(int id);
    boolean editLockAccount(int id);
    boolean editUnlockAccount(int id);
    boolean editEnableAccount(int id);
    boolean editDisableAccount(int id);
    boolean editLogoutAccount(int id);
    boolean editRestoreAccount(int id);
    boolean editAccountExpired(int id);
    boolean editAccountUnexpired(int id);
    boolean editPasswordExpired(int id);
    boolean editPasswordUnexpired(int id);
    Result editPasswordById(int id,String password);
    List<DoctorVo> getDoctors();
    Result saveArtificialDiagnosis(Long doctorId, String rawDataId);
    int getWaitRequestPatient();
    Map<String,Object> pageMyRequestPatient(int pageNum,int pageSize);
    boolean removeArtificialDiagnosis(int patientId,int doctorId,String rawDataId);
    boolean editRequestStatusAccept(int patientId,String rawDataId);
    boolean editRequestStatusReject(int patientId,String rawDataId);
    Map<String,Object> getHistoryService(String category,int pageNum,int pageSize);
    Map<String,Object> minusIntegral();
    boolean editIntegral(int id,int integral);


}
